package org.dromara.system.domain.vo;

import org.dromara.system.domain.SysStoreArea;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;


/**
 * 系统管理-店内分区配置视图对象 sys_store_area
 *
 * @author LionLi
 * @date 2024-03-18
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysStoreArea.class)
public class SysStoreAreaVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 店内分区id
     */
    @ExcelProperty(value = "店内分区id")
    private Long storeAreaId;

    /**
     * 父级id（sys_store表门店id，当类型为通道且是外围时需要带入门店id，否则为null）
     */
    @ExcelProperty(value = "父级id", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "s=ys_store表门店id，当类型为通道且是外围时需要带入门店id，否则为null")
    private Long parentId;

    /**
     * 门店id
     */
    @ExcelProperty(value = "门店id")
    private Long storeId;

    /**
     * 店内分区编号
     */
    @ExcelProperty(value = "店内分区编号")
    private String storeAreaCode;

    /**
     * 店内分区名称
     */
    @ExcelProperty(value = "店内分区名称")
    private String storeAreaName;

    /**
     * 店内分区类型（字典表：0分区 1通道 2楼层）
     */
    @ExcelProperty(value = "店内分区类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "字=典表：0分区,1=通道,2=楼层")
    private String storeAreaType;

    /**
     * 是否外围（字典表：0是 1否）
     */
    @ExcelProperty(value = "是否外围", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "字=典表：0是,1=否")
    private String isChannel;

    /**
     * 营业状态（字典表：IN_BUSINESS运行 SUSPEND暂停 CLOSING关闭）
     */
    @ExcelProperty(value = "营业状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "字=典表：IN_BUSINESS运行,S=USPEND暂停,C=LOSING关闭")
    private String status;

    private List<String> deviceIds;


}
